home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Programming / DiceSource / src / dc1 / tokens.h < prev    next >
Text File  |  1997-09-09  |  4KB  |  154 lines

  1.  
  2. /*
  3.  *  DC1/TOKENS.H
  4.  *
  5.  *    (c)Copyright 1992-1997 Obvious Implementations Corp.  Redistribution and
  6.  *    use is allowed under the terms of the DICE-LICENSE FILE,
  7.  *    DICE-LICENSE.TXT.
  8.  *
  9.  *  The higher the precedence the closer the operator bonds.  Unary operators
  10.  *  have higher precedence than binary operators.  postfix operators have higher
  11.  *  precedence than unary operators.
  12.  *
  13.  *  only binary operators need be specified in the ExpPrec array.
  14.  *
  15.  *  NOTE!!  Update Greg the C++ guy if you change this!
  16.  */
  17.  
  18. #define EXPPREC {   0,    0,  0,    90, 0,    0,  130,20, 80,  50, 20,  0,   0,  130, 20, 120,    \
  19.             0,    20, 10, 120,0,    20, 0,    0,  130, 20, 100, 110, 20, 100, 20, 90,     \
  20.             100,100,110,20, 30, 31, 0,    0,  70,  20, 60,  50,  20, 0,    0,  0,        \
  21.             0,0                                     \
  22.         }
  23.  
  24. /*
  25.  *  TOKF_PRIVATE is used in semantic level handling and also with
  26.  *  preprocessor compiled tokens.  Specifically, 0x80nn through 0x87nn
  27.  *  translates to 0x00nn through 0xn0nn
  28.  */
  29.  
  30. #define TOKF_PRIVATE    0x8000
  31. #define TOKF_CLASS    0xFF00
  32.  
  33. /*
  34.  *  preprocessor compiled token sequence
  35.  */
  36.  
  37. #define TokBegSeq    (TOKF_PRIVATE|0x0000)
  38. #define TokEndSeq    (TOKF_PRIVATE|0x0001)
  39.  
  40. /*
  41.  *  expression elements
  42.  */
  43.  
  44. #define TokNot        0x0002
  45. #define TokNotEq    0x0003
  46. #define TokPercent    0x0006
  47. #define TokPercentEq    0x0007
  48. #define TokAnd        0x0008
  49. #define TokAndAnd    0x0009
  50. #define TokAndEq    0x000A
  51. #define TokLParen    0x000B
  52. #define TokRParen    0x000C
  53. #define TokStar     0x000D
  54. #define TokStarEq    0x000E
  55. #define TokPl        0x000F
  56. #define TokPlPl     0x0010
  57. #define TokPlEq     0x0011
  58. #define TokComma    0x0012
  59. #define TokMi        0x0013
  60. #define TokMiMi     0x0014
  61. #define TokMiEq     0x0015
  62. #define TokStrInd    0x0016
  63. #define TokStrElm    0x0017
  64. #define TokDiv        0x0018
  65. #define TokDivEq    0x0019
  66. #define TokLt        0x001A
  67. #define TokLtLt     0x001B
  68. #define TokLtLtEq    0x001C
  69. #define TokLtEq     0x001D
  70. #define TokEq        0x001E
  71. #define TokEqEq     0x001F
  72. #define TokGt        0x0020
  73. #define TokGtEq     0x0021
  74. #define TokGtGt     0x0022
  75. #define TokGtGtEq    0x0023
  76. #define TokQuestion    0x0024
  77. #define TokColon    0x0025
  78. #define TokLBracket    0x0026
  79. #define TokRBracket    0x0027
  80. #define TokCarat    0x0028
  81. #define TokCaratEq    0x0029
  82. #define TokOr        0x002A
  83. #define TokOrOr     0x002B
  84. #define TokOrEq     0x002C
  85. #define TokTilde    0x002D
  86. #define TokLBrace    0x002E
  87. #define TokRBrace    0x002F
  88. #define TokSemi     0x0030
  89. #define TokSizeof    0x0031
  90. #define TokDotDotDot    0x0032
  91. #define TokTypeof    0x0033
  92.  
  93.                     /*  EXPRESSION TERMINATORS  */
  94. #define TokIntConst    0x1001
  95. #define TokStrConst    0x1002
  96. #define TokFltConst    0x1003
  97. #define TokVarId    0x1004
  98. #define TokLabelId    ((short)(0x1006|TOKF_PRIVATE))
  99. #define TokEnumConst    0x1007
  100.  
  101.                     /*  SYMBOL            */
  102. #define TokId        0x2000
  103.  
  104. #define TokTypeQual    0x3000        /*  special            */
  105. #define TokRegQual    0x3001
  106.  
  107. #define TokBreak    0x4001
  108. #define TokCase     0x4002
  109. #define TokContinue    0x4003
  110. #define TokDefault    0x4004
  111. #define TokDo        0x4005
  112. #define TokElse     0x4006
  113. #define TokFor        0x4007
  114. #define TokGoto     0x4008
  115. #define TokIf        0x4009
  116. #define TokReturn    0x400A
  117. #define TokStruct    0x400B
  118. #define TokSwitch    0x400C
  119. #define TokUnion    0x400D
  120. #define TokWhile    0x400E
  121. #define TokTypeDef    0x400F
  122. #define TokEnum     0x4010
  123. #define TokBreakPoint    0x4011
  124.  
  125.  
  126.                     /*  TYPES    */
  127. #define TokTypeId    0x5001
  128.  
  129. /*
  130.  *  0x60nn is reserved
  131.  */
  132.  
  133. #define TokCppRef1_Byte  0x86
  134. #define TokCppRef2_Byte  0x87
  135.  
  136. /*
  137.  *  Dummy tokens
  138.  */
  139.  
  140. #define TokBlock    0x7000
  141. #define TokExp        0x7001
  142. #define TokDecl     0x7002
  143. #define TokExpAssBlock    0x7003
  144. #define TokAddr     0x7004
  145. #define TokVarRef    0x7005
  146. #define TokPreInc    0x7006
  147. #define TokPreDec    0x7007
  148. #define TokPosInc    0x7008
  149. #define TokPosDec    0x7009
  150. #define TokCall     0x700A
  151. #define TokBFExt    0x700B
  152. #define TokCast     0x700C
  153.  
  154.